package cn.com.connext.scrm.service.dto;

import cn.com.connext.scrm.domain.enumeration.MemberStatus;
import com.alibaba.fastjson.JSONArray;

import javax.validation.constraints.Size;
import java.io.Serializable;
import java.time.ZonedDateTime;

public class MemberDTO implements Serializable {

    private String id;

    @Size(message = "微信号[account]长度不能为空且不能超过20", max = 20)
    private String account;

    @Size(message = "[openId]长度不能为空且不能超过50", max = 50, min = 1)
    private String openId;

    @Size(message = "[unionId]长度不能为空且不能超过50", max = 50, min = 1)
    private String unionId;

    @Size(message = "手机号[mobile]长度不能为空且不能超过20", max = 20, min = 1)
    private String mobile;

    @Size(message = "昵称[nickName]长度不能超过50", max = 50)
    private String nickName;

    private int gender;

    @Size(message = "头像地址[headImgUrl]长度不能超过200", max = 200)
    private String headImgUrl;

    private Boolean isFrozen;

    private Boolean isAdult;

    private String provinceId;

    private String cityId;

    private String districtId;

    private ZonedDateTime createTime;

    private ZonedDateTime updateTime;

    private Long createdIndex;

    private Integer totalFollows;

    private Integer totalFans;

    private Integer totalNotes;

    private JSONArray tags;

    private MemberStatus status;

    private Boolean isCertified;

    private Integer relationType=0;

    private JSONArray certificate;

    private Boolean officialCertification;
    private Boolean denyInvite = false;

    private Boolean isBanned;

    private String membershipId;

    private String source;

    private  String contentName;
    private String province;
    private String city;
    private String telephone;
    private String skuId;

    public String getSkuId() {
        return skuId;
    }

    public void setSkuId(String skuId) {
        this.skuId = skuId;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    private String address;

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getContentName() {
        return contentName;
    }

    public void setContentName(String contentName) {
        this.contentName = contentName;
    }

    public String getMembershipId() {
        return membershipId;
    }

    public void setMembershipId(String membershipId) {
        this.membershipId = membershipId;
    }

    public ZonedDateTime getGuideReadTime() {
        return guideReadTime;
    }

    public void setGuideReadTime(ZonedDateTime guideReadTime) {
        this.guideReadTime = guideReadTime;
    }

    private ZonedDateTime guideReadTime;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public String getUnionId() {
        return unionId;
    }

    public void setUnionId(String unionId) {
        this.unionId = unionId;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public int getGender() {
        return gender;
    }

    public void setGender(int gender) {
        this.gender = gender;
    }

    public String getHeadImgUrl() {
        return headImgUrl;
    }

    public void setHeadImgUrl(String headImgUrl) {
        this.headImgUrl = headImgUrl;
    }

    public Boolean getFrozen() {
        return isFrozen;
    }

    public void setFrozen(Boolean frozen) {
        isFrozen = frozen;
    }

    public Boolean getAdult() {
        return isAdult;
    }

    public void setAdult(Boolean adult) {
        isAdult = adult;
    }

    public String getProvinceId() {
        return provinceId;
    }

    public void setProvinceId(String provinceId) {
        this.provinceId = provinceId;
    }

    public String getCityId() {
        return cityId;
    }

    public void setCityId(String cityId) {
        this.cityId = cityId;
    }

    public String getDistrictId() {
        return districtId;
    }

    public void setDistrictId(String districtId) {
        this.districtId = districtId;
    }

    public ZonedDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(ZonedDateTime createTime) {
        this.createTime = createTime;
    }

    public ZonedDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(ZonedDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public Long getCreatedIndex() {
        return createdIndex;
    }

    public void setCreatedIndex(Long createdIndex) {
        this.createdIndex = createdIndex;
    }

    public Integer getTotalFollows() {
        return totalFollows;
    }

    public void setTotalFollows(Integer totalFollows) {
        this.totalFollows = totalFollows;
    }

    public Integer getTotalFans() {
        return totalFans;
    }

    public void setTotalFans(Integer totalFans) {
        this.totalFans = totalFans;
    }

    public Integer getTotalNotes() {
        return totalNotes;
    }

    public void setTotalNotes(Integer totalNotes) {
        this.totalNotes = totalNotes;
    }

    public JSONArray getTags() {
        return tags;
    }

    public void setTags(JSONArray tags) {
        this.tags = tags;
    }

    public MemberStatus getStatus() {
        return status;
    }

    public void setStatus(MemberStatus status) {
        this.status = status;
    }

    public Boolean getCertified() {
        return isCertified;
    }

    public void setCertified(Boolean certified) {
        isCertified = certified;
    }

    public Integer getRelationType() {
        return relationType;
    }

    public void setRelationType(Integer relationType) {
        this.relationType = relationType;
    }

    public JSONArray getCertificate() {
        return certificate;
    }

    public void setCertificate(JSONArray certificate) {
        this.certificate = certificate;
    }

    public Boolean getOfficialCertification() {
        return officialCertification;
    }

    public void setOfficialCertification(Boolean officialCertification) {
        this.officialCertification = officialCertification;
    }

    public Boolean getDenyInvite() {
        return denyInvite;
    }

    public void setDenyInvite(Boolean denyInvite) {
        this.denyInvite = denyInvite;
    }

    public Boolean getBanned() {
        return isBanned;
    }

    public void setBanned(Boolean banned) {
        isBanned = banned;
    }

    @Override
    public String toString() {
        return "MemberDTO{" +
            "id='" + id + '\'' +
            ", account='" + account + '\'' +
            ", openId='" + openId + '\'' +
            ", unionId='" + unionId + '\'' +
            ", mobile='" + mobile + '\'' +
            ", nickName='" + nickName + '\'' +
            ", gender=" + gender +
            ", headImgUrl='" + headImgUrl + '\'' +
            ", isFrozen=" + isFrozen +
            ", isAdult=" + isAdult +
            ", provinceId='" + provinceId + '\'' +
            ", cityId='" + cityId + '\'' +
            ", districtId='" + districtId + '\'' +
            ", createTime=" + createTime +
            ", updateTime=" + updateTime +
            ", createdIndex=" + createdIndex +
            ", totalFollows=" + totalFollows +
            ", totalFans=" + totalFans +
            ", totalNotes=" + totalNotes +
            ", tags=" + tags +
            ", status=" + status +
            ", isCertified=" + isCertified +
            ", relationType=" + relationType +
            ", certificate=" + certificate +
            ", officialCertification=" + officialCertification +
            ", denyInvite=" + denyInvite +
            ", isBanned=" + isBanned +
            ", membershipId='" + membershipId + '\'' +
            ", source='" + source + '\'' +
            ", contentName='" + contentName + '\'' +
            ", province='" + province + '\'' +
            ", city='" + city + '\'' +
            ", telephone='" + telephone + '\'' +
            ", skuId='" + skuId + '\'' +
            ", address='" + address + '\'' +
            ", guideReadTime=" + guideReadTime +
            '}';
    }
}
